import pandas as pd
import json
import os
from tqdm import tqdm

# 读取 Excel 文件
df = pd.read_excel('fujian/fujian1.xlsx')

# 将 date 列转换为字符串格式，防止 Timestamp 报错
df['date'] = df['date'].astype(str)

# 按 seller_no, product_no, warehouse_no 分组
grouped = df.groupby(['seller_no', 'product_no', 'warehouse_no'])

# 创建目录来存放生成的 JSON 文件（如果不存在的话）
output_dir = 'fujian/fujian1/json_output'
os.makedirs(output_dir, exist_ok=True)

# 统计总分组数
total_groups = len(grouped)

# tqdm 进度条
with tqdm(total=total_groups, desc="Processing groups") as pbar:
    # 遍历每个分组并将其保存为单独的 JSON 文件
    for (seller, product, warehouse), group in grouped:
        # 按照 date 列排序
        group = group.sort_values(by='date')

        # 将每个分组的数据转换为字典列表
        records = group.to_dict(orient='records')

        # 使用 seller_no, product_no, warehouse_no 作为文件名
        filename = f"{seller}_{product}_{warehouse}.json"
        filepath = os.path.join(output_dir, filename)

        # 将数据写入 JSON 文件
        with open(filepath, 'w') as json_file:
            json.dump(records, json_file, indent=4)

        # 更新进度条，显示当前已处理的分组数
        pbar.set_postfix({'Current group': pbar.n + 1})  # +1 以显示当前输出的组数
        pbar.update(1)

        print(f"Saved: {filepath}")
